home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 32 / Amiga Format AFCD32 (Nov 1998, Issue 117).iso / -seriously_amiga- / programming / other / hrtmon / src / 65816.s next >
Text File  |  1998-08-10  |  23KB  |  1,858 lines

  1.  
  2. ;HRTmon Amiga system monitor
  3. ;Copyright (C) 1991-1998 Alain Malek Alain.Malek@cryogen.com
  4. ;
  5. ;This program is free software; you can redistribute it and/or
  6. ;modify it under the terms of the GNU General Public License
  7. ;as published by the Free Software Foundation; either version 2
  8. ;of the License, or (at your option) any later version.
  9. ;
  10. ;This program is distributed in the hope that it will be useful,
  11. ;but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. ;GNU General Public License for more details.
  14. ;
  15. ;You can find the full GNU GPL online at: http://www.gnu.org
  16.  
  17.  
  18. **********************************************************
  19. ;-------------- assemble 65816 (AF) ----------------------
  20.  
  21. cmd_af        bsr    evaluate
  22.         bne.w    illegal_addr
  23.         move.l    d0,af_ptr
  24.         move.l    d0,a4
  25.         bsr    reloc_pic
  26. .loop        move.b    (a0)+,d0
  27.         beq.b    .end_line
  28.         cmp.b    #$20,d0
  29.         beq.b    .loop
  30.         subq.l    #1,a0
  31.  
  32.         bsr    f_assemble
  33.         tst.l    d0
  34.         beq.b    .end_line        ;error
  35.  
  36.         add.l    d0,af_ptr
  37.         move.l    af_ptr,d0
  38.         moveq    #8,d1
  39.         lea.l    .nextAF_txt,a0
  40.         bsr    print
  41.         bsr    print_hex
  42.         lea.l    .nextAF2_txt,a0
  43.         bsr    print
  44.  
  45. .end_line
  46.         bra.w    end_command
  47.  
  48. .nextAF_txt    dc.b "af $",0
  49. .nextAF2_txt    dc.b " ",0
  50.         even
  51.  
  52. **********************************************************
  53. ;-------------- disassemble 65816 (DF) -------------------
  54.  
  55. cmd_df        move.b    (a0)+,d0
  56.         beq.b    ok_df_cmd        ;keep last address
  57.         cmp.b    #$20,d0
  58.         beq.b    cmd_df
  59.         subq.l    #1,a0
  60.  
  61.         bsr    evaluate
  62.         bne.w    illegal_addr
  63.         move.l    d0,dis_ptr
  64.  
  65. ok_df_cmd    move.l    dis_ptr,d0        ;a4 = ptr on memory
  66.         move.l    d0,a4
  67.  
  68.         moveq    #8-1,d7
  69. next_disf_line    move.l    a4,d0
  70.         lea.l    general_txt,a0        ;print address
  71.         move.b    #'d',(a0)+
  72.         move.b    #'f',(a0)+
  73.         move.b    #'$',(a0)+
  74.         moveq    #8,d1
  75.         bsr    conv_hex
  76.  
  77.         move.l    a4,-(a7)
  78.         bsr    reloc_pic
  79.  
  80.         lea.l    general_txt+11,a0
  81.         move.l    #'    ',d0
  82.         move.l    d0,(a0)
  83.         move.l    d0,4(a0)
  84.         move.l    d0,8(a0)
  85.         move.l    d0,12(a0)
  86.  
  87.         lea.l    general_txt+25,a0
  88.         bsr    f_disassemble
  89.         move.l    (a7)+,a4
  90.         move.w    d0,d3            ;copy instr. len
  91.  
  92.         lea.l    general_txt+12,a0
  93.         moveq    #2,d1
  94. .loop        move.b    (a4)+,d0
  95.         bsr    conv_hex
  96.         add.l    d1,a0
  97.         move.b    #' ',(a0)+
  98.         subq.w    #1,d3
  99.         bne.b    .loop
  100.  
  101.         lea.l    general_txt,a0
  102.         bsr    print
  103.  
  104.         tst.b    break
  105.         dbne    d7,next_disf_line
  106.  
  107.         move.l    a4,dis_ptr
  108.  
  109.         bra.w    end_command
  110.  
  111. ************************************************************
  112. ;a0=ascII source of instr.
  113. ;a4=memory ptr (corrected)
  114. ;returns instr. len in d0 0=error
  115.  
  116. f_assemble    movem.l    d1-d7/a1-a4,-(a7)
  117.  
  118.         move.b    (a0)+,d0
  119.         bsr    upper_case
  120.         lsl.l    #8,d0
  121.         move.b    (a0)+,d0
  122.         bsr    upper_case
  123.         lsl.l    #8,d0
  124.         move.b    (a0)+,d0
  125.         bsr    upper_case
  126.         lsl.l    #8,d0
  127.         move.l    d0,d2            ;d2=ASCII of instr.
  128.  
  129.         moveq    #18,d1            ;addressing mode (18=rien)
  130. .seek        move.b    (a0)+,d0
  131.         beq.w    .end_line
  132.         cmp.b    #$20,d0
  133.         beq.b    .seek
  134.  
  135.         cmp.b    #'#',d0
  136.         bne.b    .no_immediat
  137.         bsr    evaluate
  138.         bne.w    .error
  139.         move.l    d0,d4
  140.         moveq    #0,d1
  141.         bra.w    .end_line
  142.  
  143. .no_immediat    cmp.b    #'A',d0
  144.         bne.b    .no_accu
  145.         moveq    #15,d1
  146.         bra.w    .end_line
  147.  
  148. .no_accu    cmp.b    #'<',d0
  149.         bne.b    .no_direct
  150.         bsr    evaluate
  151.         bne.w    .error
  152.         move.l    d0,d4
  153.         cmp.b    #',',(a0)+
  154.         bne.b    .no_virg
  155.         move.b    (a0)+,d0
  156.         bsr    upper_case
  157.         cmp.b    #'X',d0
  158.         bne.b    .no_x
  159.         moveq    #2,d1
  160.         bra.w    .end_line
  161. .no_x        cmp.b    #'Y',d0
  162.         bne.b    .no_y
  163.         moveq    #22,d1
  164.         bra.w    .end_line
  165. .no_y        cmp.b    #'S',d0
  166.         bne.b    .no_s
  167.         moveq    #13,d1
  168.         bra.w    .end_line
  169. .no_s        bra.w    .error
  170. .no_virg    moveq    #1,d1
  171.         bra.w    .end_line
  172.  
  173. .no_direct    cmp.b    #'!',d0
  174.         bne.b    .no_abs
  175.         bsr    evaluate
  176.         bne.w    .error
  177.         move.l    d0,d4
  178.         cmp.b    #',',(a0)+
  179.         bne.b    .no_virg2
  180.         move.b    (a0)+,d0
  181.         bsr    upper_case
  182.         cmp.b    #'X',d0
  183.         bne.b    .no_x2
  184.         moveq    #9,d1
  185.         bra.b    .end_line
  186. .no_x2        cmp.b    #'Y',d0
  187.         bne.b    .no_y2
  188.         moveq    #10,d1
  189.         bra.b    .end_line
  190. .no_y2        bra.w    .error
  191. .no_virg2    moveq    #8,d1
  192.         bra.b    .end_line
  193.  
  194. .no_abs        cmp.b    #'>',d0
  195.         bne.b    .no_absl
  196.         bsr    evaluate
  197.         bne.w    .error
  198.         move.l    d0,d4
  199.         cmp.b    #',',(a0)+
  200.         bne.b    .no_virg3
  201.         move.b    (a0)+,d0
  202.         bsr    upper_case
  203.         cmp.b    #'X',d0
  204.         bne.b    .no_x3
  205.         moveq    #12,d1
  206.         bra.b    .end_line
  207. .no_x3        bra.w    .error
  208. .no_virg3    moveq    #11,d1
  209.         bra.b    .end_line
  210.  
  211.  
  212. .no_absl
  213.  
  214.         subq.l    #1,a0
  215.         moveq    #17,d1
  216.         bsr    evaluate
  217.         bne.w    .error
  218.         move.l    d0,d4
  219.  
  220. .end_line
  221.  
  222.         lea.l    fami_list-8,a3
  223. .loop        addq.l    #8,a3
  224.         tst.b    1(a3)
  225.         bne.w    .end_seek
  226.         cmp.l    2(a3),d2        ;cmp instr.
  227.         bne.b    .loop
  228.         move.w    6(a3),d3
  229.         and.w    #$ff,d3
  230.         cmp.w    d3,d1            ;cmp addr. mode
  231.         bne.b    .loop
  232.  
  233.         move.b    (a3),(a4)        ;copy opcode
  234.         lea.l    fami_len,a3
  235.         add.w    d1,d1
  236.         moveq    #0,d5
  237.         move.b    (a3,d1.w),d5
  238.         cmp.b    #6,d5
  239.         blt.b    .normal
  240.         bne.b    .no_m6
  241.         move.l    a4,d0
  242.         addq.l    #2,d0
  243.         move.l    d4,d3
  244.         sub.l    d0,d3
  245.         cmp.l    #127,d3
  246.         bgt.w    .too_long
  247.         cmp.l    #-128,d3
  248.         blt.w    .too_long
  249.         move.b    d3,1(a4)
  250.         bra.b    .do_instr
  251. .no_m6        move.l    a4,d0
  252.         addq.l    #3,d0
  253.         move.l    d4,d3
  254.         sub.l    d0,d3
  255.         cmp.l    #32767,d3
  256.         bgt.w    .too_long
  257.         cmp.l    #-32768,d3
  258.         blt.w    .too_long
  259.         move.b    d3,1(a4)
  260.         lsr.w    #8,d3
  261.         move.b    d3,2(a4)
  262.         bra.b    .do_instr
  263.  
  264. .normal        cmp.b    #5,d5
  265.         bne.b    .no_imm
  266.         moveq    #1,d5            ;8bit mode
  267.         tst.b    fami_mode
  268.         beq.b    .no_imm
  269.         moveq    #2,d5            ;16bit mode
  270. .no_imm
  271.         lea.l    1(a4),a1
  272.         bra.b    .go_dbf
  273. .sup        move.b    d4,(a1)+
  274.         lsr.l    #8,d4
  275. .go_dbf        dbf    d5,.sup
  276.  
  277. .do_instr    moveq    #0,d0
  278.         move.b    1(a3,d1.w),d0        ;read instr. len
  279.         cmp.b    #7,d0
  280.         bne.b    .ok
  281.         moveq    #2,d0
  282.         tst.b    fami_mode
  283.         beq.b    .ok
  284.         moveq    #3,d0
  285.         bra.b    .ok
  286.  
  287. .end_seek    cmp.w    #17,d1
  288.         bne.b    .no_17
  289.         moveq    #19,d1
  290.         bra.w    .end_line
  291.  
  292. .no_17        cmp.w    #0,d1
  293.         bne.b    .no_00
  294.         moveq    #16,d1
  295.         bra.w    .end_line
  296. .no_00
  297.  
  298. .error        lea.l    AFerror_txt,a0
  299.         bsr    print
  300.         moveq    #0,d0
  301.  
  302. .ok        movem.l    (a7)+,d1-d7/a1-a4
  303.         rts
  304.  
  305. .too_long    lea.l    OutOfRange_txt,a0
  306.         bsr    print
  307.         moveq    #0,d0
  308.         bra.w    .ok
  309.  
  310. OutOfRange_txt    dc.b "Out of range error ...",$a,0
  311. AFerror_txt    dc.b "Illegal instruction ...",$a,0
  312.         even
  313.  
  314. ;< direct
  315. ;! absolu
  316. ;> absolu long
  317.  
  318. ;    dc.b sup.bytes mode,instr.len
  319. fami_len
  320.     dc.b 1,2        ;00 #$zz
  321.     dc.b 1,2        ;01 $zz
  322.     dc.b 1,2        ;02 $zz,x
  323.     dc.b 1,2        ;03 ($zz)
  324.     dc.b 1,2        ;04 ($zz,x)
  325.     dc.b 1,2        ;05 ($zz),y
  326.     dc.b 1,2        ;06 [$zz]
  327.     dc.b 1,2        ;07 [$zz],y
  328.     dc.b 2,3        ;08 $zzzz
  329.     dc.b 2,3        ;09 $zzzz,x
  330.     dc.b 2,3        ;10 $zzzz,y
  331.     dc.b 3,4        ;11 $zzzzzz
  332.     dc.b 3,4        ;12 $zzzzzz,x
  333.     dc.b 1,2        ;13 $zz,s
  334.     dc.b 1,2        ;14 ($zz,s),y
  335.     dc.b 0,1        ;15 A
  336.     dc.b 5,7        ;16 #$zz #$zzzz
  337.     dc.b 6,2        ;17 pc+2+next byte
  338.     dc.b 0,1        ;18 'rien'
  339.     dc.b 7,3        ;19 pc+3+next word
  340.     dc.b 2,3        ;20 ($zzzz)
  341.     dc.b 2,3        ;21 ($zzzz,x)
  342.     dc.b 1,2        ;22 $zz,y
  343.  
  344. ;00 #$zz  8BitOnly
  345. ;01 $zz
  346. ;02 $zz,x
  347. ;03 ($zz)
  348. ;04 ($zz,x)
  349. ;05 ($zz),y
  350. ;06 [$zz]
  351. ;07 [$zz],y
  352. ;08 $zzzz
  353. ;09 $zzzz,x
  354. ;10 $zzzz,y
  355. ;11 $zzzzzz
  356. ;12 $zzzzzz,x
  357. ;13 $zz,s
  358. ;14 ($zz,s),y
  359. ;15 a
  360. ;16 #$zz #$zzzz
  361. ;17 pc+2+next byte
  362. ;18 'rien'
  363. ;19 pc+3+next word
  364. ;20 ($zzzz)
  365. ;21 ($zzzz,x)
  366. ;22 $zz,y
  367.  
  368. ************************************************************
  369.  
  370. set_65802    movem.l    d0-d3/a0,-(a7)
  371.         sf    fami_mode
  372.         lea.l    f02_txt,a0
  373.         moveq    #63,d0
  374.         move.w    screen_height,d1
  375.         subq.w    #1,d1
  376.         moveq    #5-1,d3
  377. .loop        move.b    (a0)+,d2
  378.         bsr    print_char2
  379.         addq.w    #1,d0
  380.         dbf    d3,.loop
  381.         movem.l    (a7)+,d0-d3/a0
  382.         rts
  383.  
  384. set_65816    movem.l    d0-d3/a0,-(a7)
  385.         st    fami_mode
  386.         lea.l    f16_txt,a0
  387.         moveq    #63,d0
  388.         move.w    screen_height,d1
  389.         subq.w    #1,d1
  390.         moveq    #5-1,d3
  391. .loop        move.b    (a0)+,d2
  392.         bsr    print_char2
  393.         addq.w    #1,d0
  394.         dbf    d3,.loop
  395.         movem.l    (a7)+,d0-d3/a0
  396.         rts
  397.  
  398. f02_txt        dc.b "65802"
  399. f16_txt        dc.b "65816"
  400.         even
  401.  
  402. ************************************************************
  403. ;65816 / 65802 disassembler
  404.  
  405. ;a4=memory ptr (corrected)
  406. ;a0=ascII destination
  407. ;returns instr. len in d0
  408.  
  409. f_disassemble    movem.l    d1-d7/a1-a3,-(a7)
  410.  
  411.         move.l    #'    ',d0
  412.         move.l    d0,(a0)
  413.         move.l    d0,4(a0)
  414.  
  415.         moveq    #1,d7        ;len of instruction
  416.  
  417.         move.b    (a4),d0
  418.         lea.l    fami_list,a3
  419. .seek        tst.b    1(a3)
  420.         bne.b    .err
  421.         cmp.b    (a3),d0
  422.         beq.b    .found
  423.         addq.l    #8,a3
  424.         bra.b    .seek
  425. .found
  426.         bsr    do_famid
  427.         bra.b    .ok
  428.  
  429. .err        move.l    #'??? ',(a0)+
  430.         moveq    #1,d0
  431. .ok        move.b    #$a,(a0)+
  432.         clr.b    (a0)+
  433.         move.l    d7,d0
  434.         movem.l    (a7)+,d1-d7/a1-a3
  435.         rts
  436.  
  437.  
  438. do_famid    lea.l    2(a3),a1
  439.         move.b    (a1)+,(a0)+        ;copy instr. name
  440.         move.b    (a1)+,(a0)+
  441.         move.b    (a1)+,(a0)+
  442.         move.b    #' ',(a0)+
  443.         move.w    6(a3),d0
  444.         and.w    #$ff,d0
  445.         lsl.w    #2,d0
  446.         jsr    .fmode(pc,d0.w)
  447.  
  448. ;bit 15 a,x,y:8bit
  449. ;bit 14 a,x,y:16bit
  450.         move.w    6(a3),d0
  451.         btst    #15,d0
  452.         beq.b    .no_spec1
  453.         move.b    1(a4),d0
  454.         and.b    #$20,d0
  455.         beq.b    .no_spec1
  456.         lea.l    .axy8,a1
  457. .copy1        move.b    (a1)+,(a0)+
  458.         bne.b    .copy1
  459.         subq.l    #1,a0
  460.         tst.b    fami_auto
  461.         bne.b    .no_set
  462.         bsr    set_65802
  463. .no_set        rts
  464. .no_spec1    btst    #14,d0
  465.         beq.b    .no_spec2
  466.         move.b    1(a4),d0
  467.         and.b    #$20,d0
  468.         beq.b    .no_spec2
  469.         lea.l    .axy16,a1
  470. .copy2        move.b    (a1)+,(a0)+
  471.         bne.b    .copy2
  472.         subq.l    #1,a0
  473.         tst.b    fami_auto
  474.         bne.b    .no_spec2
  475.         bsr    set_65816
  476. .no_spec2    rts
  477.  
  478.     OPT_OFF
  479. .fmode        bra.w    fmode00
  480.         bra.w    fmode01
  481.         bra.w    fmode02
  482.         bra.w    fmode03
  483.         bra.w    fmode04
  484.         bra.w    fmode05
  485.         bra.w    fmode06
  486.         bra.w    fmode07
  487.         bra.w    fmode08
  488.         bra.w    fmode09
  489.         bra.w    fmode10
  490.         bra.w    fmode11
  491.         bra.w    fmode12
  492.         bra.w    fmode13
  493.         bra.w    fmode14
  494.         bra.w    fmode15
  495.         bra.w    fmode16
  496.         bra.w    fmode17
  497.         bra.w    fmode18
  498.         bra.w    fmode19
  499.         bra.w    fmode20
  500.         bra.w    fmode21
  501.         bra.w    fmode22
  502.     OPT_ON
  503.  
  504. .axy8        dc.b "      A,X,Y:8bit",0
  505. .axy16        dc.b "      A,X,Y:16bit",0
  506.         cnop 0,4
  507.  
  508.  
  509. ;00 #$zz
  510. fmode00        move.b    #'#',(a0)+
  511. ;01 $zz
  512. fmode01
  513.         move.b    #'$',(a0)+
  514.         move.b    1(a4),d0
  515.         addq.l    #1,d7
  516.         moveq    #2,d1
  517.         bsr    conv_hex
  518.         add.l    d1,a0
  519.         rts
  520.  
  521. ;02 $zz,x
  522. fmode02        move.b    #'$',(a0)+
  523.         move.b    1(a4),d0
  524.         addq.l    #1,d7
  525.         moveq    #2,d1
  526.         bsr    conv_hex
  527.         add.l    d1,a0
  528.         move.b    #',',(a0)+
  529.         move.b    #'X',(a0)+
  530.         rts
  531.  
  532. ;03 ($zz)
  533. fmode03        move.b    #'(',(a0)+
  534.         move.b    #'$',(a0)+
  535.         move.b    1(a4),d0
  536.         addq.l    #1,d7
  537.         moveq    #2,d1
  538.         bsr    conv_hex
  539.         add.l    d1,a0
  540.         move.b    #')',(a0)+
  541.         rts
  542.  
  543. ;04 ($zz,x)
  544. fmode04        move.b    #'(',(a0)+
  545.         move.b    #'$',(a0)+
  546.         move.b    1(a4),d0
  547.         addq.l    #1,d7
  548.         moveq    #2,d1
  549.         bsr    conv_hex
  550.         add.l    d1,a0
  551.         move.b    #',',(a0)+
  552.         move.b    #'X',(a0)+
  553.         move.b    #')',(a0)+
  554.         rts
  555. ;05 ($zz),y
  556. fmode05        move.b    #'(',(a0)+
  557.         move.b    #'$',(a0)+
  558.         move.b    1(a4),d0
  559.         addq.l    #1,d7
  560.         moveq    #2,d1
  561.         bsr    conv_hex
  562.         add.l    d1,a0
  563.         move.b    #')',(a0)+
  564.         move.b    #',',(a0)+
  565.         move.b    #'Y',(a0)+
  566.         rts
  567.  
  568. ;06 [$zz]
  569. fmode06        move.b    #'[',(a0)+
  570.         move.b    #'$',(a0)+
  571.         move.b    1(a4),d0
  572.         addq.l    #1,d7
  573.         moveq    #2,d1
  574.         bsr    conv_hex
  575.         add.l    d1,a0
  576.         move.b    #']',(a0)+
  577.         rts
  578.  
  579. ;07 [$zz],y
  580. fmode07        move.b    #'[',(a0)+
  581.         move.b    #'$',(a0)+
  582.         move.b    1(a4),d0
  583.         addq.l    #1,d7
  584.         moveq    #2,d1
  585.         bsr    conv_hex
  586.         add.l    d1,a0
  587.         move.b    #']',(a0)+
  588.         move.b    #',',(a0)+
  589.         move.b    #'Y',(a0)+
  590.         rts
  591.  
  592. ;08 $zzzz
  593. fmode08        move.b    #'$',(a0)+
  594.         move.b    2(a4),d0
  595.         lsl.w    #8,d0
  596.         move.b    1(a4),d0
  597.         addq.l    #2,d7
  598.         moveq    #4,d1
  599.         bsr    conv_hex
  600.         add.l    d1,a0
  601.         rts
  602.  
  603. ;09 $zzzz,x
  604. fmode09        move.b    #'$',(a0)+
  605.         move.b    2(a4),d0
  606.         lsl.w    #8,d0
  607.         move.b    1(a4),d0
  608.         addq.l    #2,d7
  609.         moveq    #4,d1
  610.         bsr    conv_hex
  611.         add.l    d1,a0
  612.         move.b    #',',(a0)+
  613.         move.b    #'X',(a0)+
  614.         rts
  615.  
  616. ;10 $zzzz,y
  617. fmode10        move.b    #'$',(a0)+
  618.         move.b    2(a4),d0
  619.         lsl.w    #8,d0
  620.         move.b    1(a4),d0
  621.         addq.l    #2,d7
  622.         moveq    #4,d1
  623.         bsr    conv_hex
  624.         add.l    d1,a0
  625.         move.b    #',',(a0)+
  626.         move.b    #'Y',(a0)+
  627.         rts
  628.  
  629.  
  630. ;11 $zzzzzz
  631. fmode11        move.b    #'$',(a0)+
  632.         move.b    3(a4),d0
  633.         lsl.l    #8,d0
  634.         move.b    2(a4),d0
  635.         lsl.l    #8,d0
  636.         move.b    1(a4),d0
  637.         addq.l    #3,d7
  638.         moveq    #6,d1
  639.         bsr    conv_hex
  640.         add.l    d1,a0
  641.         rts
  642.  
  643. ;12 $zzzzzz,x
  644. fmode12        move.b    #'$',(a0)+
  645.         move.b    3(a4),d0
  646.         lsl.l    #8,d0
  647.         move.b    2(a4),d0
  648.         lsl.l    #8,d0
  649.         move.b    1(a4),d0
  650.         addq.l    #3,d7
  651.         moveq    #6,d1
  652.         bsr    conv_hex
  653.         add.l    d1,a0
  654.         move.b    #',',(a0)+
  655.         move.b    #'X',(a0)+
  656.         rts
  657.  
  658. ;13 $zz,s
  659. fmode13
  660.         move.b    #'$',(a0)+
  661.         move.b    1(a4),d0
  662.         addq.l    #1,d7
  663.         moveq    #2,d1
  664.         bsr    conv_hex
  665.         add.l    d1,a0
  666.         move.b    #',',(a0)+
  667.         move.b    #'S',(a0)+
  668.         rts
  669.  
  670. ;14 ($zz,s),y
  671. fmode14        move.b    #'(',(a0)+
  672.         move.b    #'$',(a0)+
  673.         move.b    1(a4),d0
  674.         addq.l    #1,d7
  675.         moveq    #2,d1
  676.         bsr    conv_hex
  677.         add.l    d1,a0
  678.         move.b    #',',(a0)+
  679.         move.b    #'S',(a0)+
  680.         move.b    #')',(a0)+
  681.         move.b    #',',(a0)+
  682.         move.b    #'Y',(a0)+
  683.         rts
  684.  
  685. ;15 a
  686. fmode15        move.b    #'A',(a0)+
  687.         rts
  688.  
  689. ;23 #$zz #$zzzz
  690. fmode16        move.b    #'#',(a0)+
  691.         move.b    #'$',(a0)+
  692.         tst.b    fami_mode
  693.         bne.b    .do_16
  694.         move.b    1(a4),d0
  695.         addq.l    #1,d7
  696.         moveq    #2,d1
  697.         bsr    conv_hex
  698.         add.l    d1,a0
  699.         rts
  700.  
  701. .do_16        move.b    2(a4),d0
  702.         lsl.w    #8,d0
  703.         move.b    1(a4),d0
  704.         addq.l    #2,d7
  705.         moveq    #4,d1
  706.         bsr    conv_hex
  707.         add.l    d1,a0
  708.         rts
  709.  
  710.  
  711. ;17 pc+2+next byte
  712. fmode17        move.l    a4,d0
  713.         addq.l    #2,d0
  714.         move.b    1(a4),d1
  715.         addq.l    #1,d7
  716.         ext.w    d1
  717.         ext.l    d1
  718.         add.l    d1,d0
  719.         moveq    #6,d1
  720.         bsr    conv_hex
  721.         add.l    d1,a0
  722.         rts
  723.  
  724. ;18 'rien'
  725. fmode18        rts
  726.  
  727. ;19 pc+3+next word
  728. fmode19        move.l    a4,d0
  729.         addq.l    #3,d0
  730.         move.b    2(a4),d1
  731.         lsl.w    #8,d1
  732.         move.b    1(a4),d1
  733.         addq.l    #2,d7
  734.         ext.l    d1
  735.         add.l    d1,d0
  736.         moveq    #6,d1
  737.         bsr    conv_hex
  738.         add.l    d1,a0
  739.         rts
  740.  
  741. ;20 ($zzzz)
  742. fmode20        move.b    #'(',(a0)+
  743.         move.b    #'$',(a0)+
  744.         move.b    2(a4),d0
  745.         lsl.w    #8,d0
  746.         move.b    1(a4),d0
  747.         addq.l    #2,d7
  748.         moveq    #4,d1
  749.         bsr    conv_hex
  750.         add.l    d1,a0
  751.         move.b    #')',(a0)+
  752.         rts
  753.  
  754. ;21 ($zzzz,x)
  755. fmode21        move.b    #'(',(a0)+
  756.         move.b    #'$',(a0)+
  757.         move.b    2(a4),d0
  758.         lsl.w    #8,d0
  759.         move.b    1(a4),d0
  760.         addq.l    #2,d7
  761.         moveq    #4,d1
  762.         bsr    conv_hex
  763.         add.l    d1,a0
  764.         move.b    #',',(a0)+
  765.         move.b    #'X',(a0)+
  766.         move.b    #')',(a0)+
  767.         rts
  768.  
  769. ;22 $zz,y
  770. fmode22        move.b    #'$',(a0)+
  771.         move.b    1(a4),d0
  772.         addq.l    #1,d7
  773.         moveq    #2,d1
  774.         bsr    conv_hex
  775.         add.l    d1,a0
  776.         move.b    #',',(a0)+
  777.         move.b    #'Y',(a0)+
  778.         rts
  779.  
  780.  
  781. fami_list    dc.b $e2,0        ;byte of instruction,0
  782.         dc.b 'SEP',0        ;ascII of instruction
  783.         dc.w 0+$8000        ;addr. mode
  784.  
  785.         dc.b $69,0
  786.         dc.b 'ADC',0
  787.         dc.w 16
  788.  
  789.         dc.b $65,0
  790.         dc.b 'ADC',0
  791.         dc.w 01
  792.  
  793.         dc.b $75,0
  794.         dc.b 'ADC',0
  795.         dc.w 02
  796.  
  797.         dc.b $72,0
  798.         dc.b 'ADC',0
  799.         dc.w 03
  800.  
  801.         dc.b $61,0
  802.         dc.b 'ADC',0
  803.         dc.w 04
  804.  
  805.         dc.b $71,0
  806.         dc.b 'ADC',0
  807.         dc.w 05
  808.  
  809.         dc.b $67,0
  810.         dc.b 'ADC',0
  811.         dc.w 06
  812.  
  813.         dc.b $77,0
  814.         dc.b 'ADC',0
  815.         dc.w 07
  816.  
  817.         dc.b $6D,0
  818.         dc.b 'ADC',0
  819.         dc.w 08
  820.  
  821.         dc.b $7D,0
  822.         dc.b 'ADC',0
  823.         dc.w 09
  824.  
  825.         dc.b $79,0
  826.         dc.b 'ADC',0
  827.         dc.w 10
  828.  
  829.         dc.b $6F,0
  830.         dc.b 'ADC',0
  831.         dc.w 11
  832.  
  833.         dc.b $7F,0
  834.         dc.b 'ADC',0
  835.         dc.w 12
  836.  
  837.         dc.b $63,0
  838.         dc.b 'ADC',0
  839.         dc.w 13
  840.  
  841.         dc.b $73,0
  842.         dc.b 'ADC',0
  843.         dc.w 14
  844.  
  845.         dc.b $29,0
  846.         dc.b 'AND',0
  847.         dc.w 16
  848.  
  849.         dc.b $25,0
  850.         dc.b 'AND',0
  851.         dc.w 01
  852.  
  853.         dc.b $35,0
  854.         dc.b 'AND',0
  855.         dc.w 02
  856.  
  857.         dc.b $32,0
  858.         dc.b 'AND',0
  859.         dc.w 03
  860.  
  861.         dc.b $21,0
  862.         dc.b 'AND',0
  863.         dc.w 04
  864.  
  865.         dc.b $31,0
  866.         dc.b 'AND',0
  867.         dc.w 05
  868.  
  869.         dc.b $27,0
  870.         dc.b 'AND',0
  871.         dc.w 06
  872.  
  873.         dc.b $37,0
  874.         dc.b 'AND',0
  875.         dc.w 07
  876.  
  877.         dc.b $2D,0
  878.         dc.b 'AND',0
  879.         dc.w 08
  880.  
  881.         dc.b $3D,0
  882.         dc.b 'AND',0
  883.         dc.w 09
  884.  
  885.         dc.b $39,0
  886.         dc.b 'AND',0
  887.         dc.w 10
  888.  
  889.         dc.b $2F,0
  890.         dc.b 'AND',0
  891.         dc.w 11
  892.  
  893.         dc.b $3F,0
  894.         dc.b 'AND',0
  895.         dc.w 12
  896.  
  897.         dc.b $23,0
  898.         dc.b 'AND',0
  899.         dc.w 13
  900.  
  901.         dc.b $33,0
  902.         dc.b 'AND',0
  903.         dc.w 14
  904.  
  905.         dc.b $0A,0
  906.         dc.b 'ASL',0
  907.         dc.w 15
  908.  
  909.         dc.b $06,0
  910.         dc.b 'ASL',0
  911.         dc.w 01
  912.  
  913.         dc.b $16,0
  914.         dc.b 'ASL',0
  915.         dc.w 02
  916.  
  917.         dc.b $0E,0
  918.         dc.b 'ASL',0
  919.         dc.w 08
  920.  
  921.         dc.b $1E,0
  922.         dc.b 'ASL',0
  923.         dc.w 09
  924.  
  925.         dc.b $89,0
  926.         dc.b 'BIT',0
  927.         dc.w 16
  928.  
  929.         dc.b $24,0
  930.         dc.b 'BIT',0
  931.         dc.w 01
  932.  
  933.         dc.b $34,0
  934.         dc.b 'BIT',0
  935.         dc.w 02
  936.  
  937.         dc.b $2C,0
  938.         dc.b 'BIT',0
  939.         dc.w 08
  940.  
  941.         dc.b $3C,0
  942.         dc.b 'BIT',0
  943.         dc.w 09
  944.  
  945.         dc.b $C9,0
  946.         dc.b 'CMP',0
  947.         dc.w 16
  948.  
  949.         dc.b $C5,0
  950.         dc.b 'CMP',0
  951.         dc.w 01
  952.  
  953.         dc.b $D5,0
  954.         dc.b 'CMP',0
  955.         dc.w 02
  956.  
  957.         dc.b $D2,0
  958.         dc.b 'CMP',0
  959.         dc.w 03
  960.  
  961.         dc.b $C1,0
  962.         dc.b 'CMP',0
  963.         dc.w 04
  964.  
  965.         dc.b $D1,0
  966.         dc.b 'CMP',0
  967.         dc.w 05
  968.  
  969.         dc.b $C7,0
  970.         dc.b 'CMP',0
  971.         dc.w 06
  972.  
  973.         dc.b $D7,0
  974.         dc.b 'CMP',0
  975.         dc.w 07
  976.  
  977.         dc.b $CD,0
  978.         dc.b 'CMP',0
  979.         dc.w 08
  980.  
  981.         dc.b $DD,0
  982.         dc.b 'CMP',0
  983.         dc.w 09
  984.  
  985.         dc.b $D9,0
  986.         dc.b 'CMP',0
  987.         dc.w 10
  988.  
  989.         dc.b $CF,0
  990.         dc.b 'CMP',0
  991.         dc.w 11
  992.  
  993.         dc.b $DF,0
  994.         dc.b 'CMP',0
  995.         dc.w 12
  996.  
  997.         dc.b $C3,0
  998.         dc.b 'CMP',0
  999.         dc.w 13
  1000.  
  1001.         dc.b $D3,0
  1002.         dc.b 'CMP',0
  1003.         dc.w 14
  1004.  
  1005.         dc.b $E0,0
  1006.         dc.b 'CPX',0
  1007.         dc.w 16
  1008.  
  1009.         dc.b $E4,0
  1010.         dc.b 'CPX',0
  1011.         dc.w 01
  1012.  
  1013.         dc.b $EC,0
  1014.         dc.b 'CPX',0
  1015.         dc.w 08
  1016.  
  1017.         dc.b $C0,0
  1018.         dc.b 'CPY',0
  1019.         dc.w 16
  1020.  
  1021.         dc.b $C4,0
  1022.         dc.b 'CPY',0
  1023.         dc.w 01
  1024.  
  1025.         dc.b $CC,0
  1026.         dc.b 'CPY',0
  1027.         dc.w 08
  1028.  
  1029.         dc.b $3A,0
  1030.         dc.b 'DEC',0
  1031.         dc.w 15
  1032.  
  1033.         dc.b $C6,0
  1034.         dc.b 'DEC',0
  1035.         dc.w 01
  1036.  
  1037.         dc.b $D6,0
  1038.         dc.b 'DEC',0
  1039.         dc.w 02
  1040.  
  1041.         dc.b $CE,0
  1042.         dc.b 'DEC',0
  1043.         dc.w 08
  1044.  
  1045.         dc.b $DE,0
  1046.         dc.b 'DEC',0
  1047.         dc.w 09
  1048.  
  1049.         dc.b $49,0
  1050.         dc.b 'EOR',0
  1051.         dc.w 16
  1052.  
  1053.         dc.b $45,0
  1054.         dc.b 'EOR',0
  1055.         dc.w 01
  1056.  
  1057.         dc.b $55,0
  1058.         dc.b 'EOR',0
  1059.         dc.w 02
  1060.  
  1061.         dc.b $52,0
  1062.         dc.b 'EOR',0
  1063.         dc.w 03
  1064.  
  1065.         dc.b $41,0
  1066.         dc.b 'EOR',0
  1067.         dc.w 04
  1068.  
  1069.         dc.b $51,0
  1070.         dc.b 'EOR',0
  1071.         dc.w 05
  1072.  
  1073.         dc.b $47,0
  1074.         dc.b 'EOR',0
  1075.         dc.w 06
  1076.  
  1077.         dc.b $57,0
  1078.         dc.b 'EOR',0
  1079.         dc.w 07
  1080.  
  1081.         dc.b $4D,0
  1082.         dc.b 'EOR',0
  1083.         dc.w 08
  1084.  
  1085.         dc.b $5D,0
  1086.         dc.b 'EOR',0
  1087.         dc.w 09
  1088.  
  1089.         dc.b $59,0
  1090.         dc.b 'EOR',0
  1091.         dc.w 10
  1092.  
  1093.         dc.b $4F,0
  1094.         dc.b 'EOR',0
  1095.         dc.w 11
  1096.  
  1097.         dc.b $5F,0
  1098.         dc.b 'EOR',0
  1099.         dc.w 12
  1100.  
  1101.         dc.b $43,0
  1102.         dc.b 'EOR',0
  1103.         dc.w 13
  1104.  
  1105.         dc.b $53,0
  1106.         dc.b 'EOR',0
  1107.         dc.w 14
  1108.  
  1109.         dc.b $1A,0
  1110.         dc.b 'INC',0
  1111.         dc.w 15
  1112.  
  1113.         dc.b $E6,0
  1114.         dc.b 'INC',0
  1115.         dc.w 01
  1116.  
  1117.         dc.b $F6,0
  1118.         dc.b 'INC',0
  1119.         dc.w 02
  1120.  
  1121.         dc.b $EE,0
  1122.         dc.b 'INC',0
  1123.         dc.w 08
  1124.  
  1125.         dc.b $FE,0
  1126.         dc.b 'INC',0
  1127.         dc.w 09
  1128.  
  1129.         dc.b $A9,0
  1130.         dc.b 'LDA',0
  1131.         dc.w 16
  1132.  
  1133.         dc.b $A5,0
  1134.         dc.b 'LDA',0
  1135.         dc.w 01
  1136.  
  1137.         dc.b $B5,0
  1138.         dc.b 'LDA',0
  1139.         dc.w 02
  1140.  
  1141.         dc.b $B2,0
  1142.         dc.b 'LDA',0
  1143.         dc.w 03
  1144.  
  1145.         dc.b $A1,0
  1146.         dc.b 'LDA',0
  1147.         dc.w 04
  1148.  
  1149.         dc.b $B1,0
  1150.         dc.b 'LDA',0
  1151.         dc.w 05
  1152.  
  1153.         dc.b $A7,0
  1154.         dc.b 'LDA',0
  1155.         dc.w 06
  1156.  
  1157.         dc.b $B7,0
  1158.         dc.b 'LDA',0
  1159.         dc.w 07
  1160.  
  1161.         dc.b $AD,0
  1162.         dc.b 'LDA',0
  1163.         dc.w 08
  1164.  
  1165.         dc.b $BD,0
  1166.         dc.b 'LDA',0
  1167.         dc.w 09
  1168.  
  1169.         dc.b $B9,0
  1170.         dc.b 'LDA',0
  1171.         dc.w 10
  1172.  
  1173.         dc.b $AF,0
  1174.         dc.b 'LDA',0
  1175.         dc.w 11
  1176.  
  1177.         dc.b $BF,0
  1178.         dc.b 'LDA',0
  1179.         dc.w 12
  1180.  
  1181.         dc.b $A3,0
  1182.         dc.b 'LDA',0
  1183.         dc.w 13
  1184.  
  1185.         dc.b $B3,0
  1186.         dc.b 'LDA',0
  1187.         dc.w 14
  1188.  
  1189.         dc.b $A2,0
  1190.         dc.b 'LDX',0
  1191.         dc.w 16
  1192.  
  1193.         dc.b $A6,0
  1194.         dc.b 'LDX',0
  1195.         dc.w 01
  1196.  
  1197.         dc.b $B6,0
  1198.         dc.b 'LDX',0
  1199.         dc.w 22
  1200.  
  1201.         dc.b $AE,0
  1202.         dc.b 'LDX',0
  1203.         dc.w 08
  1204.  
  1205.         dc.b $BE,0
  1206.         dc.b 'LDX',0
  1207.         dc.w 10
  1208.  
  1209.         dc.b $A0,0
  1210.         dc.b 'LDY',0
  1211.         dc.w 16
  1212.  
  1213.         dc.b $A4,0
  1214.         dc.b 'LDY',0
  1215.         dc.w 01
  1216.  
  1217.         dc.b $B4,0
  1218.         dc.b 'LDY',0
  1219.         dc.w 02
  1220.  
  1221.         dc.b $AC,0
  1222.         dc.b 'LDY',0
  1223.         dc.w 08
  1224.  
  1225.         dc.b $BC,0
  1226.         dc.b 'LDY',0
  1227.         dc.w 09
  1228.  
  1229.         dc.b $46,0
  1230.         dc.b 'LSR',0
  1231.         dc.w 01
  1232.  
  1233.         dc.b $56,0
  1234.         dc.b 'LSR',0
  1235.         dc.w 02
  1236.  
  1237.         dc.b $4E,0
  1238.         dc.b 'LSR',0
  1239.         dc.w 08
  1240.  
  1241.         dc.b $5E,0
  1242.         dc.b 'LSR',0
  1243.         dc.w 09
  1244.  
  1245.         dc.b $4A,0
  1246.         dc.b 'LSR',0
  1247.         dc.w 15
  1248.  
  1249.         dc.b $09,0
  1250.         dc.b 'ORA',0
  1251.         dc.w 16
  1252.  
  1253.         dc.b $05,0
  1254.         dc.b 'ORA',0
  1255.         dc.w 01
  1256.  
  1257.         dc.b $15,0
  1258.         dc.b 'ORA',0
  1259.         dc.w 02
  1260.  
  1261.         dc.b $12,0
  1262.         dc.b 'ORA',0
  1263.         dc.w 03
  1264.  
  1265.         dc.b $01,0
  1266.         dc.b 'ORA',0
  1267.         dc.w 04
  1268.  
  1269.         dc.b $11,0
  1270.         dc.b 'ORA',0
  1271.         dc.w 05
  1272.  
  1273.         dc.b $07,0
  1274.         dc.b 'ORA',0
  1275.         dc.w 06
  1276.  
  1277.         dc.b $17,0
  1278.         dc.b 'ORA',0
  1279.         dc.w 07
  1280.  
  1281.         dc.b $0D,0
  1282.         dc.b 'ORA',0
  1283.         dc.w 08
  1284.  
  1285.         dc.b $1D,0
  1286.         dc.b 'ORA',0
  1287.         dc.w 09
  1288.  
  1289.         dc.b $19,0
  1290.         dc.b 'ORA',0
  1291.         dc.w 10
  1292.  
  1293.         dc.b $0F,0
  1294.         dc.b 'ORA',0
  1295.         dc.w 11
  1296.  
  1297.         dc.b $1F,0
  1298.         dc.b 'ORA',0
  1299.         dc.w 12
  1300.  
  1301.         dc.b $03,0
  1302.         dc.b 'ORA',0
  1303.         dc.w 13
  1304.  
  1305.         dc.b $13,0
  1306.         dc.b 'ORA',0
  1307.         dc.w 14
  1308.  
  1309.         dc.b $2A,0
  1310.         dc.b 'ROL',0
  1311.         dc.w 15
  1312.  
  1313.         dc.b $26,0
  1314.         dc.b 'ROL',0
  1315.         dc.w 01
  1316.  
  1317.         dc.b $36,0
  1318.         dc.b 'ROL',0
  1319.         dc.w 02
  1320.  
  1321.         dc.b $2E,0
  1322.         dc.b 'ROL',0
  1323.         dc.w 08
  1324.  
  1325.         dc.b $3E,0
  1326.         dc.b 'ROL',0
  1327.         dc.w 09
  1328.  
  1329.         dc.b $6A,0
  1330.         dc.b 'ROR',0
  1331.         dc.w 15
  1332.  
  1333.         dc.b $66,0
  1334.         dc.b 'ROR',0
  1335.         dc.w 01
  1336.  
  1337.         dc.b $76,0
  1338.         dc.b 'ROR',0
  1339.         dc.w 02
  1340.  
  1341.         dc.b $6E,0
  1342.         dc.b 'ROR',0
  1343.         dc.w 08
  1344.  
  1345.         dc.b $7E,0
  1346.         dc.b 'ROR',0
  1347.         dc.w 09
  1348.  
  1349.         dc.b $E9,0
  1350.         dc.b 'SBC',0
  1351.         dc.w 16
  1352.  
  1353.         dc.b $E5,0
  1354.         dc.b 'SBC',0
  1355.         dc.w 01
  1356.  
  1357.         dc.b $F5,0
  1358.         dc.b 'SBC',0
  1359.         dc.w 02
  1360.  
  1361.         dc.b $F2,0
  1362.         dc.b 'SBC',0
  1363.         dc.w 03
  1364.  
  1365.         dc.b $E1,0
  1366.         dc.b 'SBC',0
  1367.         dc.w 04
  1368.  
  1369.         dc.b $F1,0
  1370.         dc.b 'SBC',0
  1371.         dc.w 05
  1372.  
  1373.         dc.b $E7,0
  1374.         dc.b 'SBC',0
  1375.         dc.w 06
  1376.  
  1377.         dc.b $F7,0
  1378.         dc.b 'SBC',0
  1379.         dc.w 07
  1380.  
  1381.         dc.b $ED,0
  1382.         dc.b 'SBC',0
  1383.         dc.w 08
  1384.  
  1385.         dc.b $FD,0
  1386.         dc.b 'SBC',0
  1387.         dc.w 09
  1388.  
  1389.         dc.b $F9,0
  1390.         dc.b 'SBC',0
  1391.         dc.w 10
  1392.  
  1393.         dc.b $EF,0
  1394.         dc.b 'SBC',0
  1395.         dc.w 11
  1396.  
  1397.         dc.b $FF,0
  1398.         dc.b 'SBC',0
  1399.         dc.w 12
  1400.  
  1401.         dc.b $E3,0
  1402.         dc.b 'SBC',0
  1403.         dc.w 13
  1404.  
  1405.         dc.b $F3,0
  1406.         dc.b 'SBC',0
  1407.         dc.w 14
  1408.  
  1409.         dc.b $85,0
  1410.         dc.b 'STA',0
  1411.         dc.w 01
  1412.  
  1413.         dc.b $95,0
  1414.         dc.b 'STA',0
  1415.         dc.w 02
  1416.  
  1417.         dc.b $92,0
  1418.         dc.b 'STA',0
  1419.         dc.w 03
  1420.  
  1421.         dc.b $81,0
  1422.         dc.b 'STA',0
  1423.         dc.w 04
  1424.  
  1425.         dc.b $91,0
  1426.         dc.b 'STA',0
  1427.         dc.w 05
  1428.  
  1429.         dc.b $87,0
  1430.         dc.b 'STA',0
  1431.         dc.w 06
  1432.  
  1433.         dc.b $97,0
  1434.         dc.b 'STA',0
  1435.         dc.w 07
  1436.  
  1437.         dc.b $8D,0
  1438.         dc.b 'STA',0
  1439.         dc.w 08
  1440.  
  1441.         dc.b $9D,0
  1442.         dc.b 'STA',0
  1443.         dc.w 09
  1444.  
  1445.         dc.b $99,0
  1446.         dc.b 'STA',0
  1447.         dc.w 10
  1448.  
  1449.         dc.b $8F,0
  1450.         dc.b 'STA',0
  1451.         dc.w 11
  1452.  
  1453.         dc.b $9F,0
  1454.         dc.b 'STA',0
  1455.         dc.w 12
  1456.  
  1457.         dc.b $83,0
  1458.         dc.b 'STA',0
  1459.         dc.w 13
  1460.  
  1461.         dc.b $93,0
  1462.         dc.b 'STA',0
  1463.         dc.w 14
  1464.  
  1465.         dc.b $86,0
  1466.         dc.b 'STX',0
  1467.         dc.w 01
  1468.  
  1469.         dc.b $96,0
  1470.         dc.b 'STX',0
  1471.         dc.w 22
  1472.  
  1473.         dc.b $8E,0
  1474.         dc.b 'STX',0
  1475.         dc.w 08
  1476.  
  1477.         dc.b $84,0
  1478.         dc.b 'STY',0
  1479.         dc.w 01
  1480.  
  1481.         dc.b $94,0
  1482.         dc.b 'STY',0
  1483.         dc.w 02
  1484.  
  1485.         dc.b $8C,0
  1486.         dc.b 'STY',0
  1487.         dc.w 08
  1488.  
  1489.         dc.b $64,0
  1490.         dc.b 'STZ',0
  1491.         dc.w 01
  1492.  
  1493.         dc.b $74,0
  1494.         dc.b 'STZ',0
  1495.         dc.w 02
  1496.  
  1497.         dc.b $9C,0
  1498.         dc.b 'STZ',0
  1499.         dc.w 08
  1500.  
  1501.         dc.b $9E,0
  1502.         dc.b 'STZ',0
  1503.         dc.w 09
  1504.  
  1505.         dc.b $14,0
  1506.         dc.b 'TRB',0
  1507.         dc.w 01
  1508.  
  1509.         dc.b $1C,0
  1510.         dc.b 'TRB',0
  1511.         dc.w 08
  1512.  
  1513.         dc.b $04,0
  1514.         dc.b 'TSB',0
  1515.         dc.w 01
  1516.  
  1517.         dc.b $0C,0
  1518.         dc.b 'TSB',0
  1519.         dc.w 08
  1520.  
  1521.         dc.b $C2,0
  1522.         dc.b 'REP',0
  1523.         dc.w 00+$4000
  1524.  
  1525.         dc.b $E2,0
  1526.         dc.b 'SEP',0
  1527.         dc.w 0+$8000
  1528.  
  1529.         dc.b $90,0
  1530.         dc.b 'BCC',0
  1531.         dc.w 17
  1532.  
  1533.         dc.b $B0,0
  1534.         dc.b 'BCS',0
  1535.         dc.w 17
  1536.  
  1537.         dc.b $F0,0
  1538.         dc.b 'BEQ',0
  1539.         dc.w 17
  1540.  
  1541.         dc.b $30,0
  1542.         dc.b 'BMI',0
  1543.         dc.w 17
  1544.  
  1545.         dc.b $D0,0
  1546.         dc.b 'BNE',0
  1547.         dc.w 17
  1548.  
  1549.         dc.b $10,0
  1550.         dc.b 'BPL',0
  1551.         dc.w 17
  1552.  
  1553.         dc.b $80,0
  1554.         dc.b 'BRA',0
  1555.         dc.w 17
  1556.  
  1557.         dc.b $50,0
  1558.         dc.b 'BVC',0
  1559.         dc.w 17
  1560.  
  1561.         dc.b $70,0
  1562.         dc.b 'BVS',0
  1563.         dc.w 17
  1564.  
  1565.         dc.b $18,0
  1566.         dc.b 'CLC',0
  1567.         dc.w 18
  1568.  
  1569.         dc.b $D8,0
  1570.         dc.b 'CLD',0
  1571.         dc.w 18
  1572.  
  1573.         dc.b $58,0
  1574.         dc.b 'CLI',0
  1575.         dc.w 18
  1576.  
  1577.         dc.b $B8,0
  1578.         dc.b 'CLV',0
  1579.         dc.w 18
  1580.  
  1581.         dc.b $CA,0
  1582.         dc.b 'DEX',0
  1583.         dc.w 18
  1584.  
  1585.         dc.b $88,0
  1586.         dc.b 'DEY',0
  1587.         dc.w 18
  1588.  
  1589.         dc.b $E8,0
  1590.         dc.b 'INX',0
  1591.         dc.w 18
  1592.  
  1593.         dc.b $C8,0
  1594.         dc.b 'INY',0
  1595.         dc.w 18
  1596.  
  1597.         dc.b $EA,0
  1598.         dc.b 'NOP',0
  1599.         dc.w 18
  1600.  
  1601.         dc.b $F4,0
  1602.         dc.b 'PEA',0
  1603.         dc.w 08
  1604.  
  1605.         dc.b $D4,0
  1606.         dc.b 'PEI',0
  1607.         dc.w 03
  1608.  
  1609.         dc.b $62,0
  1610.         dc.b 'PER',0
  1611.         dc.w 19
  1612.  
  1613.         dc.b $48,0
  1614.         dc.b 'PHA',0
  1615.         dc.w 18
  1616.  
  1617.         dc.b $8B,0
  1618.         dc.b 'PHB',0
  1619.         dc.w 18
  1620.  
  1621.         dc.b $0B,0
  1622.         dc.b 'PHD',0
  1623.         dc.w 18
  1624.  
  1625.         dc.b $4B,0
  1626.         dc.b 'PHK',0
  1627.         dc.w 18
  1628.  
  1629.         dc.b $08,0
  1630.         dc.b 'PHP',0
  1631.         dc.w 18
  1632.  
  1633.         dc.b $DA,0
  1634.         dc.b 'PHX',0
  1635.         dc.w 18
  1636.  
  1637.         dc.b $5A,0
  1638.         dc.b 'PHY',0
  1639.         dc.w 18
  1640.  
  1641.         dc.b $68,0
  1642.         dc.b 'PLA',0
  1643.         dc.w 18
  1644.  
  1645.         dc.b $AB,0
  1646.         dc.b 'PLB',0
  1647.         dc.w 18
  1648.  
  1649.         dc.b $2B,0
  1650.         dc.b 'PLD',0
  1651.         dc.w 18
  1652.  
  1653.         dc.b $28,0
  1654.         dc.b 'PLP',0
  1655.         dc.w 18
  1656.  
  1657.         dc.b $FA,0
  1658.         dc.b 'PLX',0
  1659.         dc.w 18
  1660.  
  1661.         dc.b $7A,0
  1662.         dc.b 'PLY',0
  1663.         dc.w 18
  1664.  
  1665.         dc.b $38,0
  1666.         dc.b 'SEC',0
  1667.         dc.w 18
  1668.  
  1669.         dc.b $F8,0
  1670.         dc.b 'SED',0
  1671.         dc.w 18
  1672.  
  1673.         dc.b $78,0
  1674.         dc.b 'SEI',0
  1675.         dc.w 18
  1676.  
  1677.         dc.b $AA,0
  1678.         dc.b 'TAX',0
  1679.         dc.w 18
  1680.  
  1681.         dc.b $A8,0
  1682.         dc.b 'TAY',0
  1683.         dc.w 18
  1684.  
  1685.         dc.b $5B,0
  1686.         dc.b 'TCD',0
  1687.         dc.w 18
  1688.  
  1689.         dc.b $1B,0
  1690.         dc.b 'TCS',0
  1691.         dc.w 18
  1692.  
  1693.         dc.b $7B,0
  1694.         dc.b 'TDC',0
  1695.         dc.w 18
  1696.  
  1697.         dc.b $1C,0
  1698.         dc.b 'TRB',0
  1699.         dc.w 08
  1700.  
  1701.         dc.b $14,0
  1702.         dc.b 'TRB',0
  1703.         dc.w 01
  1704.  
  1705.         dc.b $0C,0
  1706.         dc.b 'TSB',0
  1707.         dc.w 08
  1708.  
  1709.         dc.b $04,0
  1710.         dc.b 'TSB',0
  1711.         dc.w 01
  1712.  
  1713.         dc.b $3B,0
  1714.         dc.b 'TSC',0
  1715.         dc.w 18
  1716.  
  1717.         dc.b $BA,0
  1718.         dc.b 'TSX',0
  1719.         dc.w 18
  1720.  
  1721.         dc.b $8A,0
  1722.         dc.b 'TXA',0
  1723.         dc.w 18
  1724.  
  1725.         dc.b $9A,0
  1726.         dc.b 'TXS',0
  1727.         dc.w 18
  1728.  
  1729.         dc.b $9B,0
  1730.         dc.b 'TXY',0
  1731.         dc.w 18
  1732.  
  1733.         dc.b $98,0
  1734.         dc.b 'TYA',0
  1735.         dc.w 18
  1736.  
  1737.         dc.b $BB,0
  1738.         dc.b 'TYX',0
  1739.         dc.w 18
  1740.  
  1741.         dc.b $FB,0
  1742.         dc.b 'XCE',0
  1743.         dc.w 18
  1744.  
  1745.         dc.b $00,0
  1746.         dc.b 'BRK',0
  1747.         dc.w 00
  1748.  
  1749.         dc.b $82,0
  1750.         dc.b 'BRL',0
  1751.         dc.w 19
  1752.  
  1753.         dc.b $02,0
  1754.         dc.b 'COP',0
  1755.         dc.w 00
  1756.  
  1757.         dc.b $DC,0
  1758.         dc.b 'JML',0
  1759.         dc.w 20
  1760.  
  1761.         dc.b $4C,0
  1762.         dc.b 'JMP',0
  1763.         dc.w 08
  1764.  
  1765.         dc.b $6C,0
  1766.         dc.b 'JMP',0
  1767.         dc.w 20
  1768.  
  1769.         dc.b $7C,0
  1770.         dc.b 'JMP',0
  1771.         dc.w 21
  1772.  
  1773.         dc.b $5C,0
  1774.         dc.b 'JMP',0
  1775.         dc.w 11
  1776.  
  1777.         dc.b $22,0
  1778.         dc.b 'JSL',0
  1779.         dc.w 11
  1780.  
  1781.         dc.b $20,0
  1782.         dc.b 'JSR',0
  1783.         dc.w 08
  1784.  
  1785.         dc.b $FC,0
  1786.         dc.b 'JSR',0
  1787.         dc.w 21
  1788.  
  1789.         dc.b $54,0
  1790.         dc.b 'MVN',0
  1791.         dc.w 08
  1792.  
  1793.         dc.b $44,0
  1794.         dc.b 'MVP',0
  1795.         dc.w 08
  1796.  
  1797.         dc.b $C2,0
  1798.         dc.b 'REP',0
  1799.         dc.w 00+$4000
  1800.  
  1801.         dc.b $40,0
  1802.         dc.b 'RTI',0
  1803.         dc.w 18
  1804.  
  1805.         dc.b $6B,0
  1806.         dc.b 'RTL',0
  1807.         dc.w 18
  1808.  
  1809.         dc.b $60,0
  1810.         dc.b 'RTS',0
  1811.         dc.w 18
  1812.  
  1813.         dc.b $E2,0
  1814.         dc.b 'SEP',0
  1815.         dc.w 00+$8000
  1816.  
  1817.         dc.b $DB,0
  1818.         dc.b 'STP',0
  1819.         dc.w 18
  1820.  
  1821.         dc.b $CB,0
  1822.         dc.b 'WAI',0
  1823.         dc.w 18
  1824.  
  1825.         dc.b $EB,0
  1826.         dc.b 'XBA',0
  1827.         dc.w 18
  1828.  
  1829.         dc.w -1
  1830.  
  1831. ;00 #$zz
  1832. ;01 $zz
  1833. ;02 $zz,x
  1834. ;03 ($zz)
  1835. ;04 ($zz,x)
  1836. ;05 ($zz),y
  1837. ;06 [$zz]
  1838. ;07 [$zz],y
  1839. ;08 $zzzz
  1840. ;09 $zzzz,x
  1841. ;10 $zzzz,y
  1842. ;11 $zzzzzz
  1843. ;12 $zzzzzz,x
  1844. ;13 $zz,s
  1845. ;14 ($zz,s),y
  1846. ;15 a
  1847. ;16 #$zz #$zzzz
  1848. ;17 pc+2+next byte
  1849. ;18 'rien'
  1850. ;19 pc+3+next word
  1851. ;20 ($zzzz)
  1852. ;21 ($zzzz,x)
  1853. ;22 $zz,y
  1854.  
  1855. ;bit 15 a,x,y:8bit
  1856. ;bit 14 a,x,y:16bit
  1857.  
  1858.